package com.ctshk.rpc.finance.req.advance;

import com.ctshk.rpc.finance.json.FileJson;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 申请退预收款req
 */
@Data
@ApiModel(value = "AdvancePaymentRefundAddReq",description = "申请退预收款req")
public class AdvancePaymentRefundAddReq implements Serializable {

    @NotNull(message = "预收记录ID不能为空")
    @ApiModelProperty(value = "预收记录ID",required = true)
    private Long paymentId;

    @NotNull(message = "退预收金额不能为空")
    @ApiModelProperty(value = "退预收金额",required = true)
    private BigDecimal refundMoneyAmount;

    @NotNull(message = "不可用金额不能为空")
    @ApiModelProperty(value = "不可用金额",required = true)
    private BigDecimal refundUnavailableAmount;

    @ApiModelProperty(value = "类型（1 保存，2 提交）")
    private Integer type;

    @ApiModelProperty(value = "币种ID")
    private Long currencyId;

    @ApiModelProperty(value = "币种")
    private String currency;

    @ApiModelProperty(value = "汇率")
    private Double exchangeRate;

    @ApiModelProperty(value = "退款方式id")
    private Long refundMethodId;

    @ApiModelProperty(value = "退款方式名称")
    private String refundMethodName;

    @ApiModelProperty(value = "退款时间")
    private LocalDateTime refundTime;

    @ApiModelProperty(value = "销账说明")
    private String explains;

    @ApiModelProperty(value = "退款账户")
    private String refundAccount;

    @NotNull(message = "附件不能为空")
    @ApiModelProperty(value = "附件",required = true)
    private List<FileJson> fileJson;

    @ApiModelProperty(value = "用户ID")
    private Long userId;

}
